/*----------------------------------------------------------------------------*\
|
|						Public Interface to Muse Technology
|
|							     www.Muse.com
| Author : SunJun 
| Email : sundoom@msn.com
\*----------------------------------------------------------------------------*/

//////////////////////////////////////////////////////////////////////////
// $Id: Line.h,v 1.2 2009/04/03 12:51:25 sunjun Exp $
//////////////////////////////////////////////////////////////////////////

#ifndef __Line__
#define __Line__

//////////////////////////////////////////////////////////////////////////

#if defined __cplusplus

//////////////////////////////////////////////////////////////////////////

#include <Node.h>

//////////////////////////////////////////////////////////////////////////

NAMESPACE_BEGIN(Engine)

//////////////////////////////////////////////////////////////////////////

	// this class provides an object-oriented line interface.
	class Line : public Shape
	{	
	public:
		// constructor
		Line();
		
		// destructor
		virtual ~Line();

		// add a point
		VOID add(const Vector3& p);

		// add a index
		VOID add(U32 i);

		// build the line
		VOID build();

		// trace the line
		F32 trace(const Vector3& s, const Vector3& e) const;		
		
	private:
		std::vector<Vector3>mVB;
		std::vector<U32>mIB;
	};

	typedef GPtr<Line>LinePtr;

//////////////////////////////////////////////////////////////////////////

NAMESPACE_END

//////////////////////////////////////////////////////////////////////////

#endif // __cplusplus

//////////////////////////////////////////////////////////////////////////

#endif // __Line__

//////////////////////////////////////////////////////////////////////////